package org.example.maven.service;

import org.example.maven.pojo.user.User;
import org.example.maven.pojo.user.list.AddUser;
import org.example.maven.pojo.user.list.SearchUser;
import org.example.maven.pojo.user.list.UserListTable;
import org.example.maven.pojo.user.person.PersonDetails;
import org.example.maven.pojo.user.person.PersonUpdatePassword;

import java.util.List;
import java.util.Map;

public interface UserService {
    //用户登录
    User login(String username, String password);

    //获取用户的权限
    List<String> getRolePermission(Integer id);

    //根据用户名获取id
    Integer getIdByUserName(String username);

    //获取所有用户的listTable信息
    List<UserListTable> getAllUserList(Integer pageNum,Integer pageSize);

    //获取所有的用户的listTable信息
    List<UserListTable> getAllUser();

    //获取用户select的选项信息
    List<Map<String,String>> getUserManagementSelect();

    //添加用户
    void addUser(AddUser addUser);

    //获取待编辑的用户信息
    AddUser getEditUser(Integer id);

    //获取用户对应的角色
    String[] getUserRole(Integer id);

    //更新用户信息
    void updateUser(AddUser addUser);

    //逻辑删除用户
    void deleteUser(String[]id);

    //搜索特定的用户
    List<UserListTable> getSpecieUser(SearchUser searchUser,Integer pageNum,Integer pageSize);

    //获取total总数
    Integer getUserCount(SearchUser searchUser);

    //获取用户个人信息
    PersonDetails getPersonalDetails(String username);

    //更新个人信息
    void updatePersonDetails(PersonDetails personDetails);

    //更新密码
    void updatePersonPassword(PersonUpdatePassword personUpdatePassword);

    //根据id获取用户密码
    String getPasswordById(int id);
}
